package com.hejia.alauda.service;

import com.hejia.alauda.entity.SaleActivity;
import com.hejia.alauda.entity.SaleActivity.Tag;
import com.hejia.alauda.entity.SaleActivityDevice;
import com.hejia.alauda.entity.example.SaleActivityExample;
import com.hejia.alauda.utils.Pager;
import java.util.List;

/**
 *
 * Created by jimi on 14/12/3.
 */
public interface SaleActivityService {

	/**
	 * 分页加载
	 *
	 * @param pager
	 *            分页
	 * @return 返回list
	 */
	Pager<SaleActivity> pagerSaleActivity(Pager<SaleActivity> pager);

	/**
	 * 获取当前有效活动
	 * 
	 * @return
	 */
	List<SaleActivity> effectiveActivity();

	/**
	 * 根据id获取当前有效活动
	 *
	 * @param id
	 *            id
	 * @return 对应的活动记录
	 */
	SaleActivity findEffectiveActivityById(Long id);

	/**
	 * 插入一条数据
	 *
	 * @param saleActivity
	 *            活动记录
	 * @return 返回true false
	 */
	boolean insertEntity(SaleActivity saleActivity);

	/**
	 * 修改数据
	 *
	 * @param saleActivity
	 *            活动记录
	 * @return boolean
	 */
	boolean updateEntity(SaleActivity saleActivity);

	/**
	 * 根据id查找活动记录
	 *
	 * @param id
	 *            id
	 * @return 对应的活动记录
	 */
	SaleActivity findSaleActivityById(Long id);

	/**
	 * 活动上线
	 *
	 * @param id
	 *            id
	 * @return boolean
	 */
	boolean upSaleActivity(Long id);

	/**
	 * 活动下线
	 *
	 * @param id
	 *            id
	 * @return boolean
	 */
	boolean downSaleActivity(Long id);

	/**
	 * 将活动修改为不可用
	 *
	 * @param id
	 *            id
	 * @return boolean
	 */
	boolean updateSaleActivityDisable(Long id);

	/**
	 * 移动端活动中心
	 *
	 * @param pager
	 *            pager
	 * @return pager
	 */
	Pager<SaleActivity> activityCenter(Pager<SaleActivity> pager, String os);

	/**
	 * 显示banner
	 *
	 * @param pager
	 *            pager
	 * @return pager
	 */
	Pager<SaleActivity> displayBanner(Pager<SaleActivity> pager, String os);

	/**
	 * 根据条件查找活动
	 * 
	 * @param example
	 * @param pager
	 * @return
	 */
	Pager<SaleActivity> findActivity(SaleActivityExample example,
			Pager<SaleActivity> pager);

	/**
	 * 根据条件查找活动
	 * 
	 * @param status
	 * @param pager
	 * @return
	 */
	Pager<SaleActivity> findActivity(Tag tag, Pager<SaleActivity> pager);

	/**
	 * 根据活动id查活动配置
	 * 
	 * @param id
	 * @return
	 */
	public List<SaleActivityDevice> getSaleActivityDeviceById(Long id);

	/**
	 * 增加活动配置
	 *
	 * @param saleActivityDevice
	 * @return
	 */
	boolean addSaleActivityDevice(SaleActivityDevice saleActivityDevice);

	/**
	 * 删除活动配置
	 * 
	 * @param saleActivityDevice
	 * @return
	 */
	boolean deleteSaleActivityDevice(SaleActivityDevice saleActivityDevice);

	/**
	 * 根据活动id删除配置
	 * 
	 * @param id
	 * @return
	 */
	boolean deleteSaleActivityDeviceBySAId(Long id);

	/**
	 * 修改活动配置
	 *
	 * @param 活动配置
	 * @return
	 */
	boolean modifySaleActivityDevice(SaleActivityDevice saleActivityDevice);

	/**
	 * 查找活动配置
	 *
	 * @param id
	 * @return
	 */
	SaleActivityDevice findSaleActivityDeviceById(Long id);

}
